package wancache

// ByteView is read only
type ByteView struct {
	b []byte
}

// Len return the view length
func (v ByteView) Len() int {
	return len(v.b)
}

// ByteSlice reture a copy of data as a byte slice
func (v ByteView) ByteSlice() []byte {
	return cloneBytes(v.b)
}

// String return view data as a string
func (v ByteView) String() string {
	return string(v.b)
}

func cloneBytes(b []byte) []byte {
	dst := make([]byte, len(b))
	copy(dst, b)

	return dst
}
